package com.star.jersey.mybatisplus.base.dal.crud.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.star.jersey.mybatisplus.base.core.contract.BaseQueryParam;
import com.star.jersey.mybatisplus.base.core.contract.Page;
import org.apache.ibatis.annotations.Param;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;

public interface CrudService<T, D, Q extends BaseQueryParam> extends IService<T> {
    Page<D> page(Q var1);

    List<D> list(Q var1);

    /** @deprecated */
    @Deprecated
    T selectById(Serializable var1);

    List<T> selectBatchIds(@Param("coll") Collection<? extends Serializable> var1);

    D findOne(Q var1);

    boolean exist(Q queryParam);

    D get(Long var1);

    void save(D... var1);

    void save(List<D> var1);

    boolean insert(T var1);

    boolean insertBatch(Collection<T> var1);

    boolean insertBatch(Collection<T> var1, int var2);

    void update(D var1);

    void update(List<D> var1);

    void delete(Long[] var1);

    boolean deleteById(Serializable var1);

    boolean deleteBatchIds(Collection<? extends Serializable> var1);
}